#include <stdio.h>
#include <string.h>


#define ONE 0001 //0000 0001
#define TWO 0002 //0000 0010
#define THREE 0004 //0000 0100


void func(int flags)
{
    if (flags & ONE) printf("flags has ONE! ");
    if (flags & TWO) printf("flags has TWO! ");
    if (flags & THREE) printf("flags has THREE! ");
    printf("\n");
}
int main()
{
    func(ONE);
    func(THREE);
    func(ONE | TWO);
    func(ONE | THREE | TWO);
    return 0;
}


//int main()
//{
//    FILE* fp = fopen("log.txt", "a");
//    if (fp == NULL)
//    {
//        perror("fopen");
//        return 1;
//    }
//    const char *msg = "Ciallo~\n";
//    fprintf(fp, "%s", msg);
//
//
//
//    fclose(fp);
//    //printf("Ciallo~\n");
//
//    //fprintf(stdout, "fprintf~\n");
//
//    //const char *msg = "fwrite~\n";
//    //fwrite(msg, strlen(msg), 1, stdout);
//
//    return 0;
//}










////cat myfile.c
//int main(int argc, char *argv[])
//{
//    if (argc != 2)
//    {
//        printf("Usage: %s filename\n", argv[0]);
//        return 1;
//    }
//    FILE *fp = fopen(argv[1], "r");
//    if (NULL == fp)
//    {
//        perror("fopen");
//        return 2;
//    }
//    
//    while (1)
//    {
//        char buffer[128];
//        memset(buffer, 0, sizeof(buffer));
//        int n = fread(buffer, 1, sizeof(buffer)-1, fp);
//        if (n > 0)
//        {
//            printf("%s", buffer);
//        }
//        if (feof(fp))
//            break;
//    }
//    fclose(fp);
//    return 0;
//}


//int main()
//{
//    FILE *fp  = fopen("log.txt", "w");
//    if (fp == NULL)
//    {
//        perror("fopen");
//        return 1;
//    }
//
//    const char *msg = "Ciallo :D ";
//    int cnt = 1;
//    while (cnt <= 10)
//    {
//        char buffer[1024];
//        snprintf(buffer, sizeof(buffer), "%s%d\n", msg, cnt++);
//        
//        fwrite(buffer, strlen(buffer), 1, fp);
//    }
//
//
//    fclose(fp);
//    return 0;
//}
